package com.example.extra.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 用户文件关联表
 * </p>
 *
 * @author system
 * @since 2025-01-17
 */
@Getter
@Setter
@ToString
@TableName("userfile")
@Schema(name = "UserFile", description = "用户文件关联表")
public class UserFile implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @Schema(description = "主键")
    @TableId(type = IdType.ASSIGN_ID)
    private String userFileId;

    /**
     * 用户ID
     */
    @Schema(description = "用户ID")
    private Long userId;

    /**
     * 文件ID
     */
    @Schema(description = "文件ID")
    private String fileId;

    /**
     * 文件名称（用户自定义）
     */
    @Schema(description = "文件名称（用户自定义）")
    private String fileName;



    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    private LocalDateTime createTime;


    // ========== 数据库中的其他字段 ==========

    /**
     * 创建用户ID
     */
    @Schema(description = "创建用户ID")
    private Long createUserId;

    /**
     * 删除批次号
     */
    @Schema(description = "删除批次号")
    private String deleteBatchNum;

    /**
     * 删除标志（0：正常，1：删除）
     */
    @Schema(description = "删除标志（0：正常，1：删除）")
    private Integer deleteFlag;

    /**
     * 删除时间
     */
    @Schema(description = "删除时间")
    private String deleteTime;

    /**
     * 扩展名
     */
    @Schema(description = "扩展名")
    private String extendName;

    /**
     * 文件路径
     */
    @Schema(description = "文件路径")
    private String filePath;

    /**
     * 是否目录（0：文件，1：目录）
     */
    @Schema(description = "是否目录（0：文件，1：目录）")
    private Integer isDir;

    /**
     * 修改用户ID
     */
    @Schema(description = "修改用户ID")
    private Long modifyUserId;

    /**
     * 上传时间
     */
    @Schema(description = "上传时间")
    private LocalDateTime uploadTime;

    /**
     * 资产级别
     */
    @Schema(description = "资产级别")
    private String assetLevel;

    /**
     * 是否提取
     */
    @Schema(description = "是否提取")
    private Integer extract;

    /**
     * 语言
     */
    @Schema(description = "语言")
    private String languages;

    /**
     * 是否翻译
     */
    @Schema(description = "是否翻译")
    private Integer translate;

    /**
     * 标题
     */
    @Schema(description = "标题")
    private String title;

    /**
     * 类型
     */
    @Schema(description = "类型")
    private String type;

    /**
     * 外文标题
     */
    @Schema(description = "外文标题")
    private String foreignTitle;

    /**
     * 摘要
     */
    @Schema(description = "摘要")
    private String digest;

    /**
     * 外文摘要
     */
    @Schema(description = "外文摘要")
    private String foreignDigest;

    /**
     * 作者
     */
    @Schema(description = "作者")
    private String author;

    /**
     * 第一作者
     */
    @Schema(description = "第一作者")
    private String firstAuthor;

    /**
     * 发布时间
     */
    @Schema(description = "发布时间")
    private LocalDateTime publishTime;

    /**
     * 作者单位
     */
    @Schema(description = "作者单位")
    private String authorUnit;

    /**
     * 来源
     */
    @Schema(description = "来源")
    private String source;

    /**
     * 国家
     */
    @Schema(description = "国家")
    private String country;

    /**
     * 地区
     */
    @Schema(description = "地区")
    private String territory;

    /**
     * 发布机构
     */
    @Schema(description = "发布机构")
    private String issuingAuthority;

    /**
     * 标签
     */
    @Schema(description = "标签")
    private String labels;

    /**
     * 关键词
     */
    @Schema(description = "关键词")
    private String keywords;

    /**
     * 来源URL
     */
    @Schema(description = "来源URL")
    private String sourceUrl;

    /**
     * 主题
     */
    @Schema(description = "主题")
    private String theme;

    /**
     * 政策ID
     */
    @Schema(description = "政策ID")
    private String zcId;

    /**
     * 总结
     */
    @Schema(description = "总结")
    private String summarize;

    /**
     * 事件背景
     */
    @Schema(description = "事件背景")
    private String eventContext;

    /**
     * 资产类型
     */
    @Schema(description = "资产类型")
    private String assetType;

    /**
     * 方向
     */
    @Schema(description = "方向")
    private String direction;

    /**
     * 第一ID
     */
    @Schema(description = "第一ID")
    private String firstId;

    /**
     * MinIO存储桶
     */
    @Schema(description = "MinIO存储桶")
    private String minioBucket;

    /**
     * 快速阅读
     */
    @Schema(description = "快速阅读")
    private String fastReading;

    /**
     * 思维导图
     */
    @Schema(description = "思维导图")
    private String mindMap;

    /**
     * 数据类型
     */
    @Schema(description = "数据类型")
    private Integer dataType;

    /**
     * 敏感信息
     */
    @Schema(description = "敏感信息")
    private String sensitives;

    /**
     * 是否发布
     */
    @Schema(description = "是否发布")
    private Integer isPublish;

    /**
     * 来源ID
     */
    @Schema(description = "来源ID")
    private String sourceId;

    /**
     * 结果路径
     */
    @Schema(description = "结果路径")
    private String resultPath;

    /**
     * 内容
     */
    @Schema(description = "内容")
    private String content;

    /**
     * 知识库文章ID
     */
    @Schema(description = "知识库文章ID")
    private String zkWzId;

    /**
     * 原始标题
     */
    @Schema(description = "原始标题")
    private String originalTitle;

    /**
     * 原始内容
     */
    @Schema(description = "原始内容")
    private String originalContent;
}
